home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / SNNSV32.ZIP / SNNSv3.2 / xgui / sources / ui_info.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-25  |  19.8 KB  |  627 lines

  1. /*****************************************************************************
  2.   FILE           : ui_info.c
  3.   SHORTNAME      : info.c
  4.   SNNS VERSION   : 3.2
  5.  
  6.   PURPOSE        : creates the widget containing all information of one link
  7.   NOTES          : is called only during initialisation
  8.  
  9.   AUTHOR         : Tilman Sommer
  10.   DATE           : 1.5.1990
  11.  
  12.   CHANGED BY     :
  13.   IDENTIFICATION : @(#)ui_info.c    1.10 3/2/94
  14.   SCCS VERSION   : 1.10
  15.   LAST CHANGE    : 3/2/94
  16.  
  17.              Copyright (c) 1990-1994  SNNS Group, IPVR, Univ. Stuttgart, FRG
  18.  
  19. ******************************************************************************/
  20.  
  21. #include <stdio.h>
  22.  
  23. #include "ui.h"
  24.  
  25. #include <X11/Xaw/Form.h>
  26. #include <X11/Xaw/Box.h>
  27. #include <X11/Xaw/Cardinals.h>
  28. #include <X11/Xaw/SimpleMenu.h>
  29. #include <X11/Xaw/SmeBSB.h>
  30. #include <X11/Xaw/SmeLine.h>
  31. #include <X11/Xaw/List.h>
  32.  
  33. #include "ui_infoP.h"
  34. #include "ui_xWidgets.h"
  35. #include "ui_lists.h"
  36. #include "ui_mainP.h"
  37. #include "ui_funcdispl.h"
  38. #include "ui_netUpdate.h"
  39. #include "ui_setup.h"
  40.  
  41. #include "ui_info.ph"
  42.  
  43.  
  44. /*****************************************************************************
  45.   FUNCTION : ui_xCreateInfoPanel
  46.  
  47.   PURPOSE  : creates a form widget for user input of unit data
  48.   RETURNS  : void
  49.   NOTES    : some constants are used (see below) to get a relativ positioning
  50.              of the items. This is VERY useful after changings.
  51.  
  52.   UPDATES  :
  53. *****************************************************************************/
  54.  
  55. void ui_xCreateInfoPanel(Widget parent)
  56.     /* the parent widget of the new form widget */
  57.  
  58. {
  59.     /* tabs for data fields and small buttons */
  60.  
  61.     Widget      noLabel, ioLabel, actLabel, iactLabel, outLabel, biasLabel;
  62.     Widget      snLabel, ftypeLabel;
  63.     Widget      srcLabel, tarLabel, linkLabel, tarFuncLabel, srcFuncLabel;
  64.     Widget      titleLabel, button, menu;
  65.     Widget      buttonTar, buttonSrc, mItem;
  66.  
  67.     static struct InfoCallLayerStruct  srcCallLayer, tarCallLayer;
  68.  
  69.     static struct SimpleListType  listActFuncTar, listOutFuncTar;
  70.     static struct SimpleListType  listFTypeTar, listIOTypeTar;
  71.     static struct SimpleListType  listActFuncSrc, listOutFuncSrc;
  72.     static struct SimpleListType  listFTypeSrc, listIOTypeSrc;
  73.     static struct SimpleListType  listDeleteSite, listAddSite; 
  74.  
  75.     int  fontWidth = 8;
  76.  
  77.     int  titleWidth  =  6 * fontWidth;
  78.     int  noWidth     =  5 * fontWidth;
  79.     int  stWidth     =  2 * fontWidth + 3;
  80.     int  numberWidth =  8 * fontWidth;
  81.     int  weightWidth =  9 * fontWidth;
  82.     int  nameWidth   = 20 * fontWidth; 
  83.  
  84.  
  85. /***************************************************************************/
  86.  
  87.     ui_infoPanel = 
  88.     XtCreateManagedWidget("iPanel", formWidgetClass, parent, NULL, ZERO);
  89.  
  90.  
  91.     /* build menus: ioType, fType, siteNames */
  92.  
  93.  
  94.  
  95. /*****************************  HEAD LINE  *********************************/
  96.  
  97.     titleLabel =
  98.     ui_xCreateLabelItem("title", ui_infoPanel, 
  99.                titleWidth,  NULL,       NULL);
  100.  
  101.     noLabel =
  102.     ui_xCreateLabelItem("no.",     ui_infoPanel,
  103.                 noWidth,     titleLabel, NULL);
  104.  
  105.     snLabel =
  106.     ui_xCreateLabelItem("subn.",     ui_infoPanel,
  107.                 noWidth,     noLabel, NULL);
  108.  
  109.     ioLabel =
  110.     ui_xCreateLabelItem("io",    ui_infoPanel,
  111.                 stWidth,     snLabel,    NULL);
  112.  
  113.     actLabel =
  114.     ui_xCreateLabelItem("act.",   ui_infoPanel,
  115.                 numberWidth, ioLabel,    NULL);
  116.  
  117.     iactLabel =
  118.     ui_xCreateLabelItem("iact.",   ui_infoPanel,
  119.                 numberWidth, actLabel,    NULL);
  120.  
  121.     outLabel =
  122.     ui_xCreateLabelItem("out.",   ui_infoPanel,
  123.                 numberWidth, iactLabel,   NULL);
  124.  
  125.     biasLabel = 
  126.     ui_xCreateLabelItem("bias",  ui_infoPanel,
  127.                 weightWidth, outLabel,   NULL);
  128.  
  129.     ftypeLabel =
  130.     ui_xCreateLabelItem("name", ui_infoPanel,
  131.                 nameWidth,   biasLabel,  NULL);
  132.  
  133.  
  134. /*****************************  TARGET  ************************************/
  135.  
  136.     tarLabel =
  137.     ui_xCreateLabelItem("TARGET", ui_infoPanel,
  138.                titleWidth, NULL,      titleLabel);
  139.  
  140.     ui_targetWidgets.no =
  141.     ui_xCreateLabelItem(" ", ui_infoPanel,
  142.                noWidth, titleLabel, titleLabel);
  143.  
  144.     ui_targetWidgets.subnetNo =
  145.     ui_xCreateLabelItem(" ", ui_infoPanel,
  146.                noWidth, noLabel, titleLabel);
  147.  
  148.     ui_targetWidgets.iotype =
  149.     ui_xCreateLabelItem("*", ui_infoPanel,
  150.                 stWidth,  snLabel, titleLabel );
  151.  
  152.     ui_targetWidgets.act = 
  153.     ui_xCreateDialogItem("act", ui_infoPanel,
  154.                 "0.5", numberWidth,  
  155.                 ioLabel, titleLabel);
  156.  
  157.     ui_targetWidgets.i_act = 
  158.     ui_xCreateDialogItem("iact", ui_infoPanel,
  159.                 "0.0", numberWidth,  
  160.                 actLabel, titleLabel);
  161.  
  162.     ui_targetWidgets.out = 
  163.     ui_xCreateDialogItem("out", ui_infoPanel,
  164.                 "0.5", numberWidth,  
  165.                 iactLabel, titleLabel);
  166.  
  167.     ui_targetWidgets.bias = 
  168.     ui_xCreateDialogItem("bias", ui_infoPanel,
  169.                 "0.0", weightWidth, 
  170.                 outLabel, titleLabel);
  171.  
  172.     ui_targetWidgets.name =
  173.     ui_xCreateDialogItem("name", ui_infoPanel,
  174.                 "", nameWidth, biasLabel, titleLabel);
  175.  
  176.  
  177. /*****************************  FUNCTIONS TARGET   ********************/
  178.  
  179.     tarFuncLabel =
  180.     ui_xCreateLabelItem("  FUNC", ui_infoPanel,
  181.                 titleWidth, NULL,  tarLabel);
  182.  
  183.     ui_targetWidgets.actFuncName =
  184.     ui_xCreateLabelItem("*** no act func", ui_infoPanel, nameWidth, 
  185.                 titleLabel, tarLabel);
  186.  
  187.     ui_targetWidgets.outFuncName =
  188.     ui_xCreateLabelItem("*** no out func", ui_infoPanel, nameWidth, 
  189.                 actLabel, tarLabel);
  190.  
  191.     ui_targetWidgets.ftype = 
  192.     ui_xCreateLabelItem("", ui_infoPanel,
  193.                 nameWidth, biasLabel, tarLabel);
  194.  
  195.  
  196.  
  197. /*****************************  BUTTONS & NAME TARGET   ********************/
  198.  
  199.     buttonTar =
  200.     ui_xCreateButtonItem("first", ui_infoPanel,
  201.                 titleLabel, tarFuncLabel);
  202.     XtAddCallback(buttonTar, XtNcallback, 
  203.     (XtCallbackProc) ui_info_showFirstSuccOfSourceUnit, NULL);
  204.  
  205.     XtAddCallback(buttonTar, XtNcallback, (XtCallbackProc) ui_drawFunction,"Target Out");
  206.     XtAddCallback(buttonTar, XtNcallback, (XtCallbackProc) ui_drawFunction,"Target Act");
  207.  
  208. /*    button =
  209.     ui_xCreateButtonItem("prev", ui_infoPanel,
  210.                 buttonTar, tarFuncLabel); */
  211.     /* XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_info_showPrevSuccOfSourceUnit, NULL); */
  212.  
  213.     button =
  214.     ui_xCreateButtonItem("next", ui_infoPanel,
  215.                 buttonTar, tarFuncLabel);
  216.     XtAddCallback(button, XtNcallback, 
  217.     (XtCallbackProc) ui_info_showNextSuccOfSourceUnit, NULL);
  218.  
  219.  
  220.     XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_drawFunction,"Target Out");
  221.     XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_drawFunction,"Target Act");
  222.  
  223.     ui_targetWidgets.frozen =
  224.     ui_xCreateToggleItem("freeze", ui_infoPanel,
  225.                  NULL, button, tarFuncLabel);
  226. /*
  227.     XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_info_freezeUnit,
  228.      (caddr_t) UI_TARGET);
  229. */
  230.  
  231.     XtAddCallback(ui_targetWidgets.frozen, XtNcallback, 
  232.     (XtCallbackProc) ui_info_freezeUnit, (caddr_t) UI_TARGET);
  233.  
  234.  
  235.  
  236.     button =
  237.     ui_xCreateButtonItem("default", ui_infoPanel,  
  238.                  ui_targetWidgets.frozen, tarFuncLabel);
  239.     XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_info_setDefault,
  240.     (caddr_t) UI_TARGET);
  241.  
  242.     button =
  243.     ui_xCreateMenuButtonItem("options", ui_infoPanel,
  244.                 button, tarFuncLabel);
  245.  
  246.     menu = 
  247.     XtCreatePopupShell("menu", simpleMenuWidgetClass, button,
  248.                NULL, ZERO);
  249.  
  250.     mItem =
  251.     XtCreateManagedWidget("change io-type", smeBSBObjectClass, menu,
  252.                   NULL, ZERO);
  253.     sprintf(listIOTypeTar.msg,"Set io-type of TARGET unit");
  254.     listIOTypeTar.unitPtr  = &ui_targetUnit;
  255.     listIOTypeTar.widgetPtr= button;
  256.     listIOTypeTar.listType = UI_LIST_IOTYPE;
  257.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc)  ui_info_displayList,
  258.           (struct SimpleListType *) &listIOTypeTar);
  259.     mItem =
  260.     XtCreateManagedWidget("change f-type", smeBSBObjectClass, menu,
  261.               NULL, ZERO);
  262.     sprintf(listFTypeTar.msg,"Set f-type of TARGET unit");
  263.     listFTypeTar.unitPtr  = &ui_targetUnit;
  264.     listFTypeTar.widgetPtr= button;
  265.     listFTypeTar.listType = UI_LIST_FTYPE;
  266.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_info_displayList,
  267.           (struct SimpleListType *) &listFTypeTar);
  268.  
  269.     mItem =
  270.     XtCreateManagedWidget("display activation function", 
  271.                   smeBSBObjectClass, menu,
  272.                   NULL, ZERO);
  273.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_functionPopup,"Target Act");
  274.  
  275.  
  276.     mItem =
  277.     XtCreateManagedWidget("change activation function", 
  278.                   smeBSBObjectClass, menu,
  279.                   NULL, ZERO);
  280.     sprintf(listActFuncTar.msg,"Set activation function of TARGET unit (will kill f-type)");
  281.     listActFuncTar.unitPtr  = &ui_targetUnit;
  282.     listActFuncTar.widgetPtr= button;
  283.     listActFuncTar.listType = UI_LIST_ACT_FUNC;
  284.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_info_displayList,
  285.           (struct SimpleListType *) &listActFuncTar);
  286.  
  287.     mItem =
  288.     XtCreateManagedWidget("display output function", 
  289.                   smeBSBObjectClass, menu,
  290.                   NULL, ZERO);
  291.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_functionPopup,"Target Out");
  292.  
  293.     mItem =
  294.     XtCreateManagedWidget("change output function", 
  295.                   smeBSBObjectClass, menu,
  296.                   NULL, ZERO);
  297.     sprintf(listOutFuncTar.msg,"Set output function of TARGET unit (will kill f-type)");
  298.     listOutFuncTar.unitPtr  = &ui_targetUnit;
  299.     listOutFuncTar.widgetPtr= button;
  300.     listOutFuncTar.listType = UI_LIST_OUT_FUNC;
  301.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_info_displayList,
  302.           (struct SimpleListType  *) &listOutFuncTar);
  303.  
  304.     mItem =
  305.     XtCreateManagedWidget("assign layers", smeBSBObjectClass, menu,
  306.                   NULL, ZERO);
  307.     tarCallLayer.widget    = button;
  308.     tarCallLayer.unitType  = UI_TARGET;
  309.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_info_assignLayer,
  310.           (struct InfoCallLayerStruct *) &tarCallLayer);
  311.     mItem =
  312.     XtCreateManagedWidget("list all sources", smeBSBObjectClass, menu,
  313.                   NULL, ZERO);
  314.     XtAddCallback(mItem, XtNcallback, 
  315.     (XtCallbackProc) ui_info_listAllSourceUnits, (caddr_t) UI_TARGET);
  316.  
  317.     mItem =
  318.     XtCreateManagedWidget("list all targets", smeBSBObjectClass, menu,
  319.                   NULL, ZERO);
  320.     XtAddCallback(mItem, XtNcallback, 
  321.     (XtCallbackProc) ui_info_listAllTargetUnits, (caddr_t) UI_TARGET);
  322.  
  323.     button =
  324.     ui_xCreateButtonItem("set", ui_infoPanel,    button, tarFuncLabel);
  325.     XtAddCallback(button, XtNcallback, 
  326.     (XtCallbackProc) ui_info_unitUpdateProc, (caddr_t) UI_TARGET);
  327.     XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_drawFunction,"Target Out");
  328.     XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_drawFunction,"Target Act");
  329.         
  330.  
  331. /*****************************  SOURCE  ************************************/
  332.  
  333.     srcLabel =
  334.     ui_xCreateLabelItem("SOURCE", ui_infoPanel,
  335.                titleWidth, NULL,      buttonTar);
  336.  
  337.     ui_sourceWidgets.no =
  338.     ui_xCreateLabelItem(" ", ui_infoPanel,
  339.                noWidth,  titleLabel, buttonTar);
  340.  
  341.     ui_sourceWidgets.subnetNo =
  342.     ui_xCreateLabelItem(" ", ui_infoPanel,
  343.                noWidth, noLabel, buttonTar);
  344.  
  345.     ui_sourceWidgets.iotype =
  346.     ui_xCreateLabelItem(" ", ui_infoPanel,
  347.                 stWidth,  snLabel, buttonTar);
  348.  
  349.     ui_sourceWidgets.act = 
  350.     ui_xCreateDialogItem("act", ui_infoPanel,
  351.                 "0.5", numberWidth,  
  352.                 ioLabel, buttonTar);
  353.  
  354.     ui_sourceWidgets.i_act = 
  355.     ui_xCreateDialogItem("iact", ui_infoPanel,
  356.                 "0.0", numberWidth,  
  357.                 actLabel, buttonTar);
  358.  
  359.     ui_sourceWidgets.out = 
  360.     ui_xCreateDialogItem("out", ui_infoPanel,
  361.                 "0.5", numberWidth,  
  362.                 iactLabel, buttonTar);
  363.  
  364.     ui_sourceWidgets.bias = 
  365.     ui_xCreateDialogItem("bias", ui_infoPanel,
  366.                 "0.0", weightWidth, 
  367.                 outLabel, buttonTar);
  368.  
  369.     ui_sourceWidgets.name =
  370.     ui_xCreateDialogItem("name", ui_infoPanel,
  371.                  "", nameWidth, biasLabel, buttonTar);
  372.  
  373.  
  374. /*****************************  FUNCTIONS SOURCE   ********************/
  375.  
  376.     srcFuncLabel =
  377.     ui_xCreateLabelItem("  FUNC", ui_infoPanel,
  378.                 titleWidth, NULL,    srcLabel);
  379.  
  380.     ui_sourceWidgets.actFuncName =
  381.     ui_xCreateLabelItem("*** no act func", ui_infoPanel, nameWidth, 
  382.                 titleLabel, srcLabel);
  383.  
  384.     ui_sourceWidgets.outFuncName =
  385.     ui_xCreateLabelItem("*** no out func", ui_infoPanel, nameWidth, 
  386.                 actLabel, srcLabel);
  387.  
  388.     ui_sourceWidgets.ftype = 
  389.     ui_xCreateLabelItem("", ui_infoPanel,
  390.                 nameWidth, biasLabel, srcLabel);
  391.  
  392.  
  393. /*****************************  BUTTONS & NAME SOURCE   ********************/
  394.  
  395.     buttonSrc =
  396.     ui_xCreateButtonItem("first", ui_infoPanel,
  397.                  titleLabel, srcFuncLabel);
  398.     XtAddCallback(buttonSrc, XtNcallback, 
  399.     (XtCallbackProc) ui_info_showFirstPredOfTargetUnit, NULL);
  400.  
  401.     /* New callback 16.01.92 */
  402.     XtAddCallback(buttonSrc, XtNcallback, (XtCallbackProc) ui_drawFunction,"Source Out");
  403.     XtAddCallback(buttonSrc, XtNcallback, (XtCallbackProc) ui_drawFunction,"Source Act");
  404.  
  405.  
  406.     button =
  407.     ui_xCreateButtonItem("next", ui_infoPanel,
  408.                  buttonSrc, srcFuncLabel);
  409.     XtAddCallback(button, XtNcallback, 
  410.     (XtCallbackProc) ui_info_showNextPredOfTargetUnit, NULL);
  411.  
  412.  
  413.     /* New callback 16.01.92 */
  414.     XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_drawFunction,"Source Out");
  415.     XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_drawFunction,"Source Act");
  416.  
  417.  
  418.     ui_sourceWidgets.frozen =
  419.     ui_xCreateToggleItem("freeze", ui_infoPanel,
  420.                  NULL, button, srcFuncLabel);
  421.  
  422.     XtAddCallback(ui_sourceWidgets.frozen, XtNcallback, 
  423.     (XtCallbackProc) ui_info_freezeUnit, (caddr_t) UI_SOURCE);
  424.  
  425.     button =
  426.     ui_xCreateButtonItem("default", ui_infoPanel, 
  427.                  ui_sourceWidgets.frozen, srcFuncLabel);
  428.     XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_info_setDefault,
  429.      (caddr_t) UI_SOURCE);
  430.  
  431.     button =
  432.     ui_xCreateMenuButtonItem("options", ui_infoPanel, button, srcFuncLabel);
  433.  
  434.     menu = 
  435.     XtCreatePopupShell("menu", simpleMenuWidgetClass, button,
  436.                NULL, ZERO);
  437.  
  438.     mItem =
  439.     XtCreateManagedWidget("change io-type", smeBSBObjectClass, menu,
  440.                   NULL, ZERO);
  441.     sprintf(listIOTypeSrc.msg,"Set io-type of SOURCE unit");
  442.     listIOTypeSrc.unitPtr  = &ui_sourceUnit;
  443.     listIOTypeSrc.widgetPtr= button;
  444.     listIOTypeSrc.listType = UI_LIST_IOTYPE;
  445.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_info_displayList,
  446.           (struct SimpleListType  *) &listIOTypeSrc);
  447.     mItem =
  448.     XtCreateManagedWidget("change f-type", smeBSBObjectClass, menu,
  449.                   NULL, ZERO);
  450.     sprintf(listFTypeSrc.msg,"Set f-type of SOURCE unit");
  451.     listFTypeSrc.unitPtr  = &ui_sourceUnit;
  452.     listFTypeSrc.widgetPtr= button;
  453.     listFTypeSrc.listType = UI_LIST_FTYPE;
  454.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_info_displayList,
  455.           (struct SimpleListType  *) &listFTypeSrc);
  456.     mItem =
  457.     XtCreateManagedWidget("display activation function",smeBSBObjectClass, menu,
  458.                   NULL, ZERO);
  459.     XtAddCallback(mItem, XtNcallback,  (XtCallbackProc) ui_functionPopup,"Source Act");
  460.  
  461.  
  462.     mItem =
  463.     XtCreateManagedWidget("change activation function", 
  464.                   smeBSBObjectClass, menu,
  465.                   NULL, ZERO);
  466.     sprintf(listActFuncSrc.msg,"Set activation function of SOURCE unit (will kill f-type)");
  467.     listActFuncSrc.unitPtr  = &ui_sourceUnit;
  468.     listActFuncSrc.widgetPtr= button;
  469.     listActFuncSrc.listType = UI_LIST_ACT_FUNC;
  470.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_info_displayList,
  471.           (struct SimpleListType  *) &listActFuncSrc);
  472.     mItem =
  473.     XtCreateManagedWidget("display output function", smeBSBObjectClass, menu,
  474.                   NULL, ZERO);
  475.     XtAddCallback(mItem, XtNcallback,  (XtCallbackProc) ui_functionPopup,"Source Out");
  476.  
  477.  
  478.     mItem =
  479.     XtCreateManagedWidget("change output function", 
  480.                   smeBSBObjectClass, menu,
  481.                   NULL, ZERO);
  482.     sprintf(listOutFuncSrc.msg,"Set output function of SOURCE unit (will kill f-type)");
  483.     listOutFuncSrc.unitPtr  = &ui_sourceUnit;
  484.     listOutFuncSrc.widgetPtr= button;
  485.     listOutFuncSrc.listType = UI_LIST_OUT_FUNC;
  486.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_info_displayList,
  487.           (struct SimpleListType  *) &listOutFuncSrc);
  488.  
  489.     mItem =
  490.     XtCreateManagedWidget("assign layers", smeBSBObjectClass, menu,
  491.                   NULL, ZERO);
  492.     srcCallLayer.widget    = button;
  493.     srcCallLayer.unitType  = UI_SOURCE;
  494.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_info_assignLayer,
  495.           (struct InfoCallLayerStruct *) &srcCallLayer);
  496.     mItem =
  497.     XtCreateManagedWidget("list all sources", smeBSBObjectClass, menu,
  498.                   NULL, ZERO);
  499.     XtAddCallback(mItem, XtNcallback, 
  500.     (XtCallbackProc) ui_info_listAllSourceUnits, (caddr_t) UI_SOURCE);
  501.  
  502.     mItem =
  503.     XtCreateManagedWidget("list all targets", smeBSBObjectClass, menu,
  504.                   NULL, ZERO);
  505.     XtAddCallback(mItem, XtNcallback, 
  506.     (XtCallbackProc) ui_info_listAllTargetUnits, (caddr_t) UI_SOURCE);
  507.  
  508.     button =
  509.     ui_xCreateButtonItem("set", ui_infoPanel,
  510.                  button, srcFuncLabel);
  511.     XtAddCallback(button, XtNcallback, 
  512.     (XtCallbackProc) ui_info_unitUpdateProc, (caddr_t) UI_SOURCE);
  513.     /* New callback 20.07.92 */
  514.     XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_drawFunction,"Source Out");
  515.     XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_drawFunction,"Source Act");
  516.  
  517.  
  518.  
  519. /*****************************  LINK    ************************************/
  520.  
  521.     linkLabel =
  522.     ui_xCreateLabelItem("LINK", ui_infoPanel,
  523.                titleWidth, NULL, buttonSrc);
  524.  
  525.     ui_linkWidgets.weight =
  526.     ui_xCreateDialogItem("weight", ui_infoPanel,
  527.                 "0.01", weightWidth, 
  528.                 linkLabel, buttonSrc);
  529.  
  530.     ui_linkWidgets.siteValue =
  531.     ui_xCreateLabelItem("siteVal", ui_infoPanel,
  532.                 weightWidth, snLabel, buttonSrc);
  533.     ui_xSetLabel(ui_linkWidgets.siteValue, "");
  534.  
  535.     ui_linkWidgets.siteFuncName =
  536.     ui_xCreateLabelItem("site func", ui_infoPanel, nameWidth, 
  537.                 actLabel, buttonSrc);
  538.     ui_xSetLabel(ui_linkWidgets.siteFuncName, "");
  539.  
  540.     ui_linkWidgets.siteName =
  541.     ui_xCreateLabelItem("site name", ui_infoPanel,
  542.                 nameWidth, biasLabel, buttonSrc);
  543.     ui_xSetLabel(ui_linkWidgets.siteName,"");
  544.  
  545. /*****************************  LINK BUTTONS & SITE NAME  ******************/
  546.  
  547.     button =
  548.     ui_xCreateButtonItem("first", ui_infoPanel,
  549.                 titleLabel, linkLabel);
  550.     XtAddCallback(button, XtNcallback, 
  551.     (XtCallbackProc) ui_info_showFirstSiteOfTargetUnit, NULL);
  552.  
  553.     button =
  554.     ui_xCreateButtonItem("next", ui_infoPanel,
  555.                 button, linkLabel);
  556.     XtAddCallback(button, XtNcallback, 
  557.     (XtCallbackProc) ui_info_showNextSiteOfTargetUnit, NULL);
  558.  
  559.     button =
  560.     ui_xCreateMenuButtonItem("options", ui_infoPanel,
  561.                 button, linkLabel);
  562.  
  563.     menu = 
  564.     XtCreatePopupShell("menu", simpleMenuWidgetClass, button,
  565.                NULL, ZERO);
  566.  
  567.     mItem =
  568.     XtCreateManagedWidget("list current site of TARGET", smeBSBObjectClass, 
  569.                   menu, NULL, ZERO);
  570.     XtAddCallback(mItem, XtNcallback, 
  571.     (XtCallbackProc) ui_info_listAllLinksToCurrentSite, NULL);
  572.  
  573.     mItem =
  574.     XtCreateManagedWidget("list all sites of TARGET", smeBSBObjectClass, 
  575.                   menu, NULL, ZERO);
  576.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_info_listAllSites, 
  577.     (caddr_t) UI_TARGET);
  578.  
  579.     mItem =
  580.     XtCreateManagedWidget("list all links from SOURCE", smeBSBObjectClass, 
  581.                   menu, NULL, ZERO);
  582.     XtAddCallback(mItem, XtNcallback, 
  583.     (XtCallbackProc) ui_info_listAllTargetUnits, (caddr_t) UI_SOURCE);
  584.  
  585.     mItem =
  586.     XtCreateManagedWidget("delete site", smeBSBObjectClass, 
  587.                   menu, NULL, ZERO);
  588.     sprintf(listDeleteSite.msg,"Delete site of target unit (will kill f-type)");
  589.     listDeleteSite.unitPtr  = &ui_targetUnit;
  590.     listDeleteSite.widgetPtr= button;
  591.     listDeleteSite.listType = UI_LIST_UNIT_SITE;
  592.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_info_displayList,
  593.           (struct SimpleListType *) &listDeleteSite);
  594.  
  595.     mItem =
  596.     XtCreateManagedWidget("add site", smeBSBObjectClass, 
  597.                   menu, NULL, ZERO);
  598.     sprintf(listAddSite.msg,"Add site to target unit (will kill f-type)");
  599.     listAddSite.unitPtr  = &ui_targetUnit;
  600.     listAddSite.widgetPtr= button;
  601.     listAddSite.listType = UI_LIST_SITE;
  602.     XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_info_displayList,
  603.           (struct SimpleListType *) &listAddSite);
  604.  
  605.     button =
  606.     ui_xCreateButtonItem("set", ui_infoPanel,
  607.                  button, linkLabel);
  608.     XtAddCallback(button, XtNcallback, 
  609.     (XtCallbackProc) ui_info_linkUpdateProc, NULL);
  610.  
  611.  
  612. /***************************************************************************/
  613.  
  614.     XawFormDoLayout(ui_infoPanel, True);
  615.     ui_infoIsCreated = TRUE;
  616. }
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625. /* end of file */
  626. /* lines: 578 */
  627.